Reciprocal computation is an important aspect of inversion and division operations performed by, for example, computers and other hardware devices. Specifically, many scientific and practical applications require the computation of reciprocals with a high level or degree of precision and a low latency. One such application is communication signal processing. For example, multiple-input multiple-output (MIMO) wireless receivers used in wireless communication systems may require a precision on the order of 12 or more bits, and a low latency to support real-time operation. The implementation cost also must be minimized to make viable commercial products. Other applications requiring high precision and low latency reciprocal computation include, for example and without limitation, scientific computing, graphics processing, and matrix inversion, to cite a few possibilities.
While techniques exist for carrying out reciprocal computations with the necessary level of precision, such techniques are not without their disadvantages or drawbacks. Specifically, existing techniques entail using large hardware units having an undesirable amount of latency, complexity and power consumption, less than desirable processing speed, and other disadvantages. For example, FIG. 1 illustrates an example of a known reciprocal unit that utilizes a pair of large lookup tables—a 2048×13 bit lookup table and a 256×6 bit lookup table—requiring the use of a relatively large amount of memory (i.e., 28160 bits). FIG. 2 illustrates an example of a known reciprocal unit that employs an iterative technique utilizing the well known Newton-Raphson algorithm embodied in the following equation: {tilde over (x)}k+1=2{tilde over (x)}k−x{tilde over (x)}k2 wherein: x is a number for which a reciprocal is being computed; {tilde over (x)} is an estimate of the reciprocal of x; and k is the iteration being performed. As shown, the illustrated unit comprises a lookup table, a multiplexer, a pair of multiplier circuits, and an adder circuit, and requires at least two iterations to compute the reciprocal with the necessary amount of precision. As such, the unit has a relatively high amount of complexity and latency due to the number and type of required components and the delay associated therewith, as well as the need for multiple iterations to achieve the necessary/desired precision. FIG. 3 illustrates yet another example of a known reciprocal unit, a feed-forward reciprocal unit that also utilizes the Newton-Raphson algorithm described above. As shown, the unit comprises a lookup table, a pair of multiplier circuits, and an adder circuit. As with the unit illustrated in FIG. 2, the unit illustrated in FIG. 3 is relatively complex and has a relatively large amount of latency due to the number and type of required components and the delay associated therewith.
Accordingly, there is a need for reciprocal units that compute reciprocals (or estimates thereof) with a high degree of precision and that also minimize and/or eliminate one or more of the above-identified deficiencies.